"""

░▒▓███████▓▒░░▒▓███████▓▒░       ░▒▓█▓▒░░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░░▒▓██████▓▒░
░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░      ░▒▓█▓▒░░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░
░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░      ░▒▓█▓▒░░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░
░▒▓█▓▒░░▒▓█▓▒░▒▓███████▓▒░       ░▒▓█▓▒░░▒▓█▓▒░░▒▓█▓▒░▒▓████████▓▒░▒▓█▓▒░░▒▓█▓▒░
░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░      ░▒▓█▓▒░░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░
░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░▒▓██▓▒░▒▓█▓▒░░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░
░▒▓███████▓▒░░▒▓█▓▒░░▒▓█▓▒░▒▓██▓▒░░▒▓█████████████▓▒░░▒▓█▓▒░░▒▓█▓▒░░▒▓██████▓▒░

************************************🔥🔥🔥************************************
作者：Shawn Holmes Hu（胡歌）.
QQ个人：791169230
QQ交流群：723478400（后期技术交流）
QQ腾讯频道：pd71901880（编程技术交流）
欢迎各位小伙伴一起交流学习，共同进步！加油！！！
************************************😊😊😊************************************
程序类型：嵌入式脚本
程序版权：原创
原程序作者：胡歌
程序首次创建时间：2025/1/9
************************************💝💝💝************************************
程序名称：dr_SelectedItems_DeleteShorterThanOneSecond.py
程序版本：V1.0.0
程序介绍：将选中的音频对象，短于一秒的部分，进行删除操作。
************************************💯💯💯************************************
"""
from reaper_python import *

RPR_Undo_BeginBlock()  # 撤销设置开始
RPR_PreventUIRefresh(1)  # 防止UI刷新


# 计算选中的音频对象的个数
items_number = RPR_CountSelectedMediaItems(0)  # 获取选中的音频对象数量
# 遍历所有选中的音频对象
if items_number > 0: # 如果选中了音频对象
    for i in range(items_number - 1, -1, -1): # 从最后一个选中的音频对象开始遍历
        # 获取选中的某个音频对象
        media_item = RPR_GetSelectedMediaItem(0, i) # 获取选中的音频对象
        the_length = RPR_GetMediaItemInfo_Value(media_item, "D_LENGTH")  # 获取选中的音频对象的长度
        if the_length <= 1: # 如果音频对象的长度小于等于1秒
            # mute_state = RPR_SetMediaItemInfo_Value(media_item, "B_MUTE", 1) # 设置选中的音频对象为静音状态
            # 删除这个音频对象
            media_track = RPR_GetMediaItem_Track(media_item)
            state = RPR_DeleteTrackMediaItem(media_track, media_item)
            if state:
                RPR_ShowConsoleMsg("删除成功！") # 在控制台输出成功信息
            else:
                RPR_ShowConsoleMsg("删除失败！") # 在控制台输出失败信息
        else:
            RPR_ShowConsoleMsg("不小于1秒")
else:
    RPR_ShowConsoleMsg("没有选中音频对象，请先选中需要操作的部分，然后再运行。") # 在控制台输出提示信息


"""
方法二：
"""
# i = 0
# while i < RPR_CountSelectedMediaItems(0):
#     media_item = RPR_GetSelectedMediaItem(0, i)
#     media_length = RPR_GetMediaItemInfo_Value(media_item, "D_LENGTH")
#     if media_length <= 1.000001:
#         media_track = RPR_GetMediaItem_Track(media_item)
#         if RPR_DeleteTrackMediaItem(media_track, media_item):
#             RPR_ShowConsoleMsg(f"Deleted media item at index {i}\n")
#         else:
#             RPR_ShowConsoleMsg(f"Failed to delete media item at index {i}\n")
#     else:
#         i += 1  # 只有未删除的情况下才递增索引


RPR_PreventUIRefresh(-1)  # 允许UI刷新
RPR_UpdateArrange()  # 刷新界面，反映修改
RPR_Undo_EndBlock("将选中的音频对象，短于一秒的部分，进行删除操作。", -1)  # 撤销设置结束
